<?php

namespace App\Transformers\Base;

use App\Models\Base\PointRule;
use League\Fractal\ParamBag;
use League\Fractal\TransformerAbstract;

class PointRuleTransformer extends TransformerAbstract
{
//    protected $availableIncludes = ['user',  'recentComments'];

    public function transform(PointRule $rule)
    {
//        return $rule->attributesToArray();
        return [
            'id' => $rule->id,
            'rulename' => $rule->rulename,
            'action' => $rule->action,
            'point' => $rule->point,
        ];
    }

//  如果有包含子对象，可重写此方法
//    public function includeUser(Post $rule)
//    {
//        if (! $post->user) {
//            return $this->null();
//        }
//
//        return $this->item($post->user, new UserTransformer());
//    }


    /**
     * 列表加载列表不是一件很好的事情，因为dingo的预加载机制
     * 自动预加载include的参数, 所以会读取所有帖子的所有评论
     * 所以可以增加一个recentComments, 增加一个limit条件
     * 但是依然不够完美.
     */
//    public function includeRecentComments(Post $post)
//    {
//        // 倒叙
//        $comments = $post->recentComments->sortByDesc('id');
//
//        return $this->collection($comments, new CommentTransformer())
//            ->setMeta([
//                'count' => $comments->count(),
//            ]);
//    }
}
